const ajax = require('./../api/index');//ajax文件
const pageConfig = require('./config');//全局配置文件

var userid = sessionStorage.getItem('gq_qyh_userid');
// var userid = 'T20180123155917763328713816';
var errorCode = sessionStorage.getItem('gq_qyh_errorCode');//错误次数

String.prototype.getParameter = function (key) {
  var re = new RegExp(key + '=([^&]*)(?:&)?');
  return this.match(re) && this.match(re)[1];
};

//检查userid
function checkUserid(to, cb) {
  if (!sessionStorage.getItem('parameterCode')) {
    let path = sessionStorage.getItem('gq_qyh_path');
    if (!path) { path = to.path; sessionStorage.setItem('gq_qyh_path', path); }
    let code = location.href.getParameter('code');
    if (code) {
      sessionStorage.setItem('code', code);
      sessionStorage.setItem('parameterCode', code);
      // console.log('href', pageConfig.base_path)
      window.location.href = pageConfig.base_path + '#' + path ;
    } else {
      locationhref(location.href);
    }
  } else {
    cb()
  }

  //   let code = location.href.getParameter('code')
  //   let codeStorage = sessionStorage.getItem('code')
  //   let parameterCode = sessionStorage.getItem('parameterCode')
  //   /* 企业微信获取权限的连接里不能有code 需要再次重定向回原来的连接 parameterCode记录第一次重定向中连接中的code */
  //   if (!!code) {
  //     sessionStorage.setItem('parameterCode', code)
  //     parameterCode = sessionStorage.getItem('parameterCode')
  //   }

  //   // console.log('code', code)
  //   // console.log('parameterCode', parameterCode)
  //   // console.log('codeStorage', codeStorage)

  //   if (!!codeStorage && codeStorage !== 'undefined') {
  //     cb()
  //   } else {
  //     if (!!parameterCode) {
  //       let this_path = sessionStorage.getItem('gq_qyh_path')
  //       // console.log('this_path', this_path)
  //       if (!this_path) {
  //         // console.log('重定向', pageConfig.base_path)
  //         sessionStorage.setItem('gq_qyh_path', to.path) /* 临时存储路由 */
  //         locationhref(pageConfig.base_path, cb)
  //         return
  //       }
  //       sessionStorage.setItem('code', parameterCode)
  //       sessionStorage.removeItem('parameterCode')

  //       if (window.location.href.indexOf('?code=') > -1) {
  //         window.history.pushState({}, 0, pageConfig.base_path) /* 重定向回原来的连接 */
  //       }
  //       cb({ path: this_path, replace: true })
  //     } else {
  //       // console.log('没有code 重定向获取code')
  //       sessionStorage.setItem('gq_qyh_path', to.path) /* 临时存储路由 */
  //       locationhref(pageConfig.base_path, cb)
  //     }
  //   }

  // }
  // function typeToAgentid(type) {
  //   let this_agentid = '';
  //   if (type.indexOf('traffic') > -1) {
  //     this_agentid = pageConfig.agentid.traffic
  //   } else
  //     if (type.indexOf('newsList') > -1 || type.indexOf('newsDetail') > -1) {
  //       this_agentid = pageConfig.agentid.news
  //     }
  //     else
  //       if (type.indexOf('noticeList') > -1 || type.indexOf('noticeDetail') > -1) {
  //         this_agentid = pageConfig.agentid.notic
  //       }
  //       else
  //         if (type.indexOf('roadCar') > -1) {
  //           this_agentid = pageConfig.agentid.roadCar
  //         }
  //   return this_agentid
  // }

  // //获取userid
  // function getUserid(code, agentid, cb, path) {
  //   ajax.$http.post('Common/Common/getuseridHtml', { code: code, agentid: agentid },
  //     function (data) {
  //       // alert(JSON.stringify(data))
  //       userid = data.data.userid;
  //       sessionStorage.setItem('gq_qyh_userid', userid);
  //       if (!!cb) {
  //         cb(path);
  //         sessionStorage.removeItem('gq_qyh_path');
  //         sessionStorage.removeItem('gq_qyh_errorCode');
  //       }
  //     },
  //     function (err) {
  //       if (err.msg == 'no code' || err.msg == 'code invalid') {
  //         sessionStorage.removeItem('gq_qyh_userid');
  //         // var myhrefC = location.href;
  //         if (!!errorCode) {
  //           errorCode = Number(errorCode);
  //           if (errorCode < 4) {
  //             errorCode++;
  //             sessionStorage.setItem('gq_qyh_errorCode', errorCode);
  //             locationhref(pageConfig.base_path);
  //           } else {
  //             sessionStorage.removeItem('gq_qyh_errorCode');
  //             alert('内部参数错误，请联系管理员');
  //             return
  //           }
  //         } else {
  //           errorCode = 0;
  //           sessionStorage.setItem('gq_qyh_errorCode', errorCode);
  //           locationhref(pageConfig.base_path);
  //         }

  //       } else {

  //         alert(err.msg);
  //         alert('系统错误，请联系管理员');
  //       }
  //     });
}

function locationhref(url) {
  url = delQueStr(url, "code");
  // let a = 'http://qydev.weixin.qq.com/wiki/index.php?title=OAuth%E9%AA%8C%E8%AF%81%E6%8E%A5%E5%8F%A3'
  var wxurl = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=" + pageConfig.appid + "&redirect_uri=" + encodeURIComponent(url) + "&response_type=code&scope=snsapi_base&agentid=" + 1000034 + "&state=STATE#wechat_redirect"
  "https://open.weixin.qq.com/connect/oauth2/authorize?appid=CORPID&redirect_uri=REDIRECT_URI&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect"
  // console.log(wxurl)
  window.location.href = wxurl;
}
function delQueStr(url, ref) {
  var str = "";
  if (url.indexOf('?') != -1) {
    str = url.substr(url.indexOf('?') + 1);
  }
  else {
    return url;
  }
  var arr = "";
  var returnurl = "";
  var setparam = "";
  if (str.indexOf('&') != -1) {
    arr = str.split('&');
    for (i in arr) {
      if (arr[i].split('=')[0] != ref) {
        returnurl = returnurl + arr[i].split('=')[0] + "=" + arr[i].split('=')[1] + "&";
      }
    }
    return url.substr(0, url.indexOf('?')) + "?" + returnurl.substr(0, returnurl.length - 1);
  }
  else {
    arr = str.split('=');
    if (arr[0] == ref) {
      return url.substr(0, url.indexOf('?'));
    }
    else {
      return url;
    }
  }
}

var indexObj = {
  checkUserid: checkUserid,
  userid: function () {
    return userid
  },
  removeUserId: function () {
    sessionStorage.removeItem('gq_qyh_userid')
  }
}

// // 返回在vue模板中的调用接口
export default {
  install(Vue) {
    Vue.prototype.$user = indexObj
    Vue.user = indexObj
  },
  $user: indexObj
}

export const $user = indexObj
